/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Presente;

import BancoDados.BancoDados;
import Entidade.CidadeModel;
import Entidade.EnderecoModel;
import Entidade.VendedorModel;
import Enum.UF;
import Pesistencia.CidadePersistencia;
import Pesistencia.EnderencoPersistencia;
import Pesistencia.VendedorPersistencia;
import View.CadastrarVendedorView1;
import View.ManterVendedorView;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Thalyta
 */
public class MantervedendorPresente {

    private ManterVendedorView view = new ManterVendedorView();
    private BancoDados banco = new BancoDados();
    private VendedorPersistencia vendedores = new VendedorPersistencia(banco);
   // private ManterVendedorView manterVendedor = new ManterVendedorView();
    private CadastrarVendedorView1 cadastrarView=new CadastrarVendedorView1();
    private CidadePersistencia cidades = new CidadePersistencia(banco);
    private EnderencoPersistencia enderecos = new EnderencoPersistencia(banco);
    private CadastrarVendedorPresente cadastrarVendedor = new CadastrarVendedorPresente(cadastrarView);
    public MantervedendorPresente(ManterVendedorView vie ) {
        
        view = vie ;
        carregartabela();
        view.getBtneditar().addActionListener(new ActionListener() {

           
            @Override
            public void actionPerformed(ActionEvent e) {
                
            }
        });
        
       view.getBtnexcluir().addActionListener(new ActionListener() {

           
            @Override
            public void actionPerformed(ActionEvent e) {
                excluir();
               
            }
        });
       
       view.getBtnfechar().addActionListener(new ActionListener() {

           
            @Override
            public void actionPerformed(ActionEvent e) {
                fechar();
            }
        });
       view.getBtneditar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                cadastrarView.setVisible(true);
                editar();
            }
        });
        view.setLocationRelativeTo(null);

        view.setVisible(true);
    }
 public void fechar(){

view.setVisible(false);
 
 }
 
 public void excluir(){
    String codigo = view.getjTable1().getValueAt(view.getjTable1().getSelectedRow(),0).toString();
     VendedorModel produto ;
     produto = vendedores.buscar(Integer.parseInt(codigo));
     vendedores.excluir(produto);
     ManterVendedorView vie = new ManterVendedorView();
     MantervedendorPresente cont = new MantervedendorPresente(vie);
     view.setVisible(false);
}
 
public void editar(){
    CadastrarVendedorView1 cad = new CadastrarVendedorView1();
    String codigo = view.getjTable1().getValueAt(view.getjTable1().getSelectedRow(),0).toString();
    final VendedorModel  vendedor ;
    vendedor = vendedores.buscar(Integer.parseInt(codigo));
    final EnderecoModel endereco;
    endereco = enderecos.buscarEnd(vendedor.getEndereco());
    final CidadeModel cidade;
    System.out.println(endereco.getCidade());
    int x = endereco.getCidade();
    cidade = cidades.buscar(x);
    cadastrarView.getTxtnome().setText(vendedor.getNome());
    cadastrarView.getTxtcpf().setText(vendedor.getCpf());
    cadastrarView.getTxtrua().setText(endereco.getRua());
    cadastrarView.getTxtnumero().setText(String.valueOf(endereco.getNumero()));
    cadastrarView.getCep().setText(endereco.getCep());
    cadastrarView.getTxtcidade().setText(cidade.getNome());
    cadastrarView.getTxtdatanascimento().setText(vendedor.getData().toString());
    cadastrarView.getTxtrg().setText(vendedor.getRg());
    cadastrarView.getTxttelefone().setText(vendedor.getTelefone());
    cadastrarView.getSalario().setText(String.valueOf(vendedor.getSalario()));
    cadastrarView.getBtnEditar().setVisible(true);
    carregacombox();
     cadastrarView.getBtnsalvar().setVisible(false);
    view.setVisible(false);
    cadastrarView.setLocationRelativeTo(null);
    cadastrarView.setVisible(true);
    
    cadastrarView.getBtnEditar().addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            editar1(vendedor,cidade,endereco);
            cadastrarView.setVisible(false);
            view.setVisible(true);
        
        }
        
        
    });
      
    cadastrarView.getBtncancelar().addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            cadastrarView.setVisible(false);
            view.setVisible(true);
        }
        
        
    });
      
   
   
}  

 public void editar1(VendedorModel vendedor,CidadeModel cidade,EnderecoModel endereco)
  {
    try{
           int codigo,codigo2;
           if (vendedores.buscar(vendedores.recuperarUltimoCodigo() + 1) != null) 
           {
                          throw new Exception("Cliente ja cadastrado- iiiih ferrou!");
           } 
           else
           {

                     if(cidades.buscarNome(cadastrarView.getTxtcidade().getText()) == null)
                     {

                          codigo = cidades.recuperarUltimoCodigo() + 1 ;
                          CidadeModel cidadee = new CidadeModel(codigo,cadastrarView.getTxtcidade().getText(),cadastrarView.getCBXestado().getSelectedItem().toString());
                          cidades.cadastrar(cidadee);
                     }
                    else 
                     {
                          codigo = cidades.buscarNome1(cadastrarView.getTxtcidade().getText());
                     }

                     if(enderecos.buscarNome(cadastrarView.getTxtrua().getText()) == null)
                     {
                          codigo2 = enderecos.recuperarUltimoCodigo() + 1 ;
                          EnderecoModel  endreco = new EnderecoModel(codigo2, codigo, cadastrarView.getTxtrua().getText(), Integer.parseInt(cadastrarView.getTxtnumero().getText()),cadastrarView.getCep().getText());
                          enderecos.cadastrar(endreco);
                     }
                    else 
                     {
                          codigo2 = enderecos.buscarNome1(cadastrarView.getTxtrua().getText());
                     }
                      vendedor.setEndereco(codigo2);
                      vendedor.setCpf(cadastrarView.getTxtcpf().getText());
                      vendedor.setNome(cadastrarView.getTxtnome().getText());
                      vendedor.setRg(cadastrarView.getTxtrg().getText());
                      String d = cadastrarView.getTxtdataadmissao().getText();
                      vendedor.setTelefone(cadastrarView.getTxttelefone().getText());
                      
                     // vendedor.setSexo(cadastrarView.getCbmsexo().getSelectedItem().toString());  
                      vendedores.editar(vendedor);
                      //cidades.cadastrar(cidade);
                    //  endrecos.cadastrar(endereco);
                      view.setVisible(false);
                 }
           
                 carregartabela();
            } catch (Exception e) 
            {
                  JOptionPane.showMessageDialog(view, e.getMessage());
            }
  }

  public void carregacombox(){
      UF[] ts = UF.values();
      
      for(UF tipos : ts){ 
 
    cadastrarView.getCBXestado().addItem(tipos.toString());
      }
  
  }     

public final void carregartabela(){
    
    DefaultTableModel tm = new DefaultTableModel (
            
            new Object[][] {},
            new String []{" codProduto","Nome","RG","CPF","Tel","CodEnd","Salario","Comissão","Data de Admissão"}){
                
                public boolean isCellEditable(int ronw, int col){
                    return false;
                }
            };
    tm.setNumRows(0);
    
    for (int i = 0; i < vendedores.getListaProdutos().size(); i++) {
        VendedorModel produto = (VendedorModel) vendedores.getListaProdutos().get(i);
        
        tm.addRow(new Object[]{produto.getCodigo(),produto.getNome(),produto.getRg(),produto.getCpf(),produto.getTelefone(),produto.getEndereco(),produto.getSalario(),produto.getComissão(),produto.getData()});
        
        
    }
     view.getjTable1().setModel(tm);
          
            
}
}
